מבני נתונים תרגיל 5 שאלות לגבי העבודה יש להעלות בפורום של הקורס או בשעות הקבלה של המרצה או המתרגל האחראיים על העבודה.

Similar documents
קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

Depth-First Search DFS

Practical Session No. 13 Amortized Analysis, Union/Find

תכנון אלגוריתמים, אביב 2010, תרגול מס' 7 סריקה לעומק, מיון טופולוגי, רכיבים קשירים היטב. time time 1

תרגול מס' 01 אלגוריתם דיניץ

יסודות מבני נתונים. תרגול :9 ערימה - Heap

חזרה, מיונים פולינה לוצקר

סיכום מבני נתונים )שיעור( מרצה: אלכס סמורודניצקי. להערות: אמיר נווה

תרגול 8. Hash Tables

מבני נתונים תרגיל 4 פתרון

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

פרק מיון וחיפוש - לשם מה? הגדרה

קובץ שאלות פתורות אביב 2102

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

ASP.Net MVC + Entity Framework Code First.

בוחן בתכנות בשפת C בצלחה

תרגול 11 תור עץ חיפוש בינארי

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

םימתירוגלאו םינותנ ינבמ המירעו תינס, חמ רות רקצול הנילופ

הקיטסיגול הרבחה יעדמל בלושמה גוחה

Computer Structure. Exercise #1 יש להגיש את התשובות הסופיות על גבי טופס זה.

מבוא לרשתות - תרגול מס' 11 Transparent Bridges

A R E Y O U R E A L L Y A W A K E?

אלגוריתמים 1 דפי עזר

הגדרה: משפחת עצים תקרא מאוזנת אם (n.h(t) = O(log

שאלה ) 1 מבחינה של פרופ' נוגה אלון ( G V עם משקלים על הקשתות, ונתון עץ פורש מינימלי של G. נניח

. s בנוסף, המרחק בקשתות על העץ מ- s לכל צומת ב- R הוא מינימאלי. נותן פיתרון ל: מציאת מסלול קצר ביותר מהמקור לכל צומת. גלוי צמתים ברי הגעה מהמקור.

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

מבוא לתכנות ב- JAVA תרגול 7

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

סיבוכיות זמן ריצה רדוקציות ושלמות ב- NP המחלקה P הגדרה: = המחלקה NP הגדרה: שפה סגירות שפות הגדרה: רדוקציה

A Long Line for a Shorter Wait at the Supermarket

מ ש ר ד ה ח י נ ו ך ה פ ד ג ו ג י ת א ש כ ו ל מ ד ע י ם על ה ו ר א ת ה מ ת מ ט י ק ה מחוון למבחן מפמ"ר לכיתה ט', רמה מצומצמת , תשע"ב טור א'

Reflection Session: Sustainability and Me

THINKING ABOUT REST THE ORIGIN OF SHABBOS

פרק יעילות היעילות של קריטריון המקום עוסק בנושאים דומים לאלה של קריטריון הזמן. אנו נתרכז בחישובי היעילות של מדד הזמן.

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

בעיית שיבוץ משימות.J כל משימה j J מאופיינת על הקלט: קבוצת משימות.t(j) s(j) וזמן סיום ידי זמן התחלה J J של משימות לא חופפות בזמן, הפלט: תת-קבוצה שהיא מ

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

Adam: Meet Haman. A Sermon Delivered by Rabbi Haskel Lookstein on Shabbat Bereishit October 25, 2008

פתרון בעיית צביעת הגרפים בעזרת אלגוריתם גנטי ואלגוריתמי Beam-Search

בחינת בגרות, תשע"ז מס' שאלון: מדעי המחשב שאלה 1. Java. blog.csit.org.il הילה קדמן

מבוא למחשב בשפת פייתון

הצגת המשחק תלמידים משחקים סיום. פתיחה 12 min. min. min. min פתיחה. Copyright 2015

Genetic Tests for Partners of CF patients

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

תרגול נושאי התרגול כעץ חיפוש בינארי : העץ הימני. Inorder(x) 1) if x NULL 2) then Inorder(left(x)) 3) print key[x] 4) Inorder(right(x))

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

Patents Basics. Yehuda Binder. (For copies contact:

המבנה הגאומטרי של מידה

אוסף תרגילים למעבדה ביוניקס - 4

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

קריאת גרפים. לצפייה בפתרון בווידאו לתרגילים שבחוברת, כנסו ל "קריאת גרפים" בשאלון 801 שבאתר 116

פרק היררכי

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

מערכים Haim Michael. All Rights Reserved.

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

JUDAISM AND INDIVIDUALITY

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

מבחן באנגלית בהצלחה הצלחה!!! שם פרטי: שם משפחה: מס' תעודת זהות: תאריך: שם מרכז מנהל מרכז השכלה: תאריך בדיקת המבחן: כל הזכויות שמורות למשרד החינוך

DNS פרק 4 ג' ברק גונן מבוסס על ספר הלימוד "רשתות מחשבים" עומר רוזנבוים 1

interface Student {tag: Student, name: string; age: number;} const makestudent = ( name: string, age: number ) : Student =>

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

4...Informed Search Strategies Partial Order Planning 29...Hierarchical Decomposition Reenforcement Learning 40...Unsupervised Learning

במבוא מורחב למדעי המחשב בשפת פייתון

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

חומר עזר בשימוש: הכל )ספרים ומחברות( קרא המלצות לפני הבחינה ובדיקות אחרונות לפני מסירה )עמודים 8-11( 2 שאלות )בחירה מ - 4( סה"כ 50 נקודות

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

שאלון ד' הוראות לנבחן

מושגים בסיסיים תלמידים והורים יקרים,

שאלון ו' הוראות לנבחן

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

T H E S U N F L O W E R L I M I T S T O F O R G I V E N E S S


שאלון ו' הוראות לנבחן

לצפייה בפתרון בווידאו לתרגילים שבחוברת, כנסו ל "סטטיסטיקה והסתברות" בשאלון 802 שבאתר

Structural Vs. Nominal Typing

אנגלית (MODULE E) בהצלחה!

NATIONAL COUNCIL OF YOUNG ISRAEL. Shavuot Nation JEWISH EDITION. Compiled by Gabi Weinberg Teen Program Director

1. מספרים מרוכבים צורות אלגברית ווקטורית של מספרים מרוכבים. הוא זוג סדור. הגדרה 1.1. מספר מרוכב z של מספרים ממשיים. ו- y

אוניברסיטת בן גוריון בנגב

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

1.1. הקדמה (דיסק). מדריכי. (מחיצות) Link

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

שבות תחום מצוות עשה שזמן גרמא סמיכה תקיעה, שברים, תרועה. The אי ור of performing any מלאכה on Rosh HaShanah שופר in preparation of the

למבחן ביסודות מדעי המחשב דוגמא

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

בהצלחה! משך הבחינה: מבוא למדעי המחשב ד"ר פז כרמי פרופ' מייק קודיש ד"ר חן קיסר ד"ר צחי רוזן שם הקורס: מבוא למדעי המחשב מספר הקורס:

Transcription:

מבני נתונים תרגיל 5 תאריך פרסום: תאריך הגשה: מרצה ומתרגל אחראים: צחי רוזן, תומר כהן נהלי הגשת עבודה: את העבודה יש להגיש בזוגות. את הפתרון לעבודה זו עליכם לכתוב בקובץ word )או כל כתבן אחר לפי טעמכם האישי(, עבודות הכתובות בכתב יד לא יתקבלו. את הקובץ יש להגיש למערכת ההגשה System).(Submission שאלות לגבי העבודה יש להעלות בפורום של הקורס או בשעות הקבלה של המרצה או המתרגל האחראיים על העבודה. נושאים:.Heap Graphs Sorting MST Union Find הערה כללית לגבי השאלות בעבודה: שימו לב כי בכל שאלה בה אתם מתבקשים להציע מימוש למבנה נתונים התומך בפעולות נתונות, עליכם לתת תיאור של מבנה הנתונים )האם למשל יורכב ממערך, שתי מחסניות, תור של רשימות ומשתנה וכד'...(. בנוסף, עליכם לתאר את האלגוריתמים לביצוע כל אחת מהפעולות המבוקשות.

מערך כמעט ממוין עם טווח k הוא מערך שכל איבר בו נמצא במרחק של לכל היותר k מקומות מהמקום בו הוא אמור היה להיות לו המערך היה ממוין..1 לדוגמא המערך הבא הוא כמעט ממוין בטווח אחד. 2 1 3 5 4 7 6 9 8 11 שכן, לו המערך היה ממוין )למטה(, כל איבר בו היה במרחק של לכל היותר מקום אחד ממקומו במערך הממוין. 1 2 3 4 5 6 7 8 9 11. תארו אלגוריתם למיון מערך כמעט ממוין בגודל n עם טווח k בזמן (( נעשה זאת בעזרת ערימה. האלגוריתם: איתחול 1= i. א. הכנס את k האיברים הראשונים לערימת מינימום. ב. כל עוד הערימה לא ריקה: ג. i. הוצא את האיבר המינימאלי מהערימה והכנס למערך במקום a. אם :i + k n הכנס את A[i+k] לערימה..b.i = i + 1.c ניתוח זמן ריצה: בניית הערימה - O(k) הכנסת והוצאת איבר מערימה : O(log(k)) חזרה על הלולאה n פעמים. סה"כ: O(nlog(k)) O(n*log(k)+k) =

נתון גרף מכוון ). תארו אלגוריתם אשר בהינתן קדקודים מוצא ב- G מסלול מ- s ל- t שאורכו מודול 3 שווה לאפס. זמן הריצה הנדרש: ). במידה ולא קיים מסלול כזה, על האלגוריתם להדפיס הודעה מתאימה..2 האלגוריתם יהיה דומה ל- BFS המתחיל בקדקוד s עם השינויים הבאים: בכל קדקוד v נחזיק מערך A בגודל 3 מאותחל באפסים. האינדקסים במערך יתחילו באפס. אם באיזשהו שלב A[i] יהיה שווה ל- 1, אזי יש מסלול מ- s ל- ל v שאורכו מודולו 3 שווה ל- i. האלגוריתם בודק אם באיזשהו שלב [0]A של הקדקוד t מקבל את הערך 1. אם כן יש מסלול מ- s ל- t שאורכו מודולו 3 שווה 0, אחרת אין. בנוסף, נחזיק בכל קדקוד v שדה d שיציין את אורך המסלול הנוכחי מודולו 3 מ- s ל- t בסריקת ה- DFS שלנו. האלגוריתם: 1 let Q be an empty queue 2 s.d = 0 3 s.a[s.d] = 1 4 Q.enqueue(s) 5 while Q is not empty 6 v Q.dequeue() 7 for all edges u in G.adj(v) do 8 if u.a[(v.d+1)%3] = 0 9 u.d = (v.d+1)%3 10 u.a[u.d] = 1 11 Q.enqueue(u) ניתוח זמן ריצה: כל קדקוד יכנס לתור לכל היותר 3 פעמים ובכל פעם עוברים על כל השכנים שלו לכן בדומה לBFS זמן הריצה יהיה O(V+E)

k. log(n) רצפים של מספרים עוקבים וש- k מ- מורכב מספרים שלמים. ידוע שA n הוא מערך של A כלומר קיימות k קבוצות מספרים שלמים מהצורה: { } { } { }.3 כך ש- n1+n2+ +nk=n ו- A מכיל את איחוד הקבוצות. שימו לב. הקבוצות לא בהכרח זרות והן אינן מופיעות בהכרח כרצפים ממוינים במערך A. אם ערך מסוים מופיע במספר קבוצות, הוא יופיע במערך A מספר פעמים כמספר הקבוצות בהן הוא מופיע. למשל המערך 4] A=[11, 3, 2, 13, 4, 6, 12, 5, מקיים את התנאים הנדרשים עבור = 3 k והקבוצות } {, } { ו- } { הציעו אלגוריתם למיון A בזמן ריצה קצר ככל האפשר, והוכיחו חסם הדוק לזמן הריצה של האלגוריתם שלכם. כדי לפתור את השאלה נשים לב שכל מערך Arr של O(n) מספרים שלמים אשר מקיים: ) ) ) ).) ) ניתן למיון בעזרת מיון מניה בזמן O(n) )פשוט צריך להחסיר מכל איבר ב- Arr את בפתרון נשתמש בעובדה זו ונמיין בעזרת מיון מניה קבוצות של מספרים המקיימות את התנאי. מקיימים את התנאי. אברי הקבוצה ) נסתכל על המערךA. נניח ללא הגבלת הכלליות כי ואת כל האיברים הגדולים בזמן O(n) ע"י כך שנמצא את ) )*(. ניתן למצוא ב- A את כל אברי בזמן.O(n) את האיברים האלה אנחנו יכולים למיין במיון מניה בזמן O(n). אחרי ) שווים מ- שעשינו זאת אנו יכולים לחזור על הפעולה שוב ושוב בזמן O(n), כאשר בכל פעם אנחנו מפרידים וממיינים קבוצת איברים המכילה בתוכה את הקבוצה Si אשר מכילה את האיבר המקסימלי מבין האיברים. A שנותרו ב- Sort-Them(A) i = 0 While A is not empty do i=i+1 Put all the numbers in A in the ) ) range in array A = New array containing = sorted in O(n) time using modified counting sort. C = new array containing in order {,, } האלגוריתם בבירור ממיין את A משום שהוא בכל פעם לוקח קבוצה שמכילה את כל המספרים מעל גודל מסוים,ממיין אותם, ובסוף מסדר את המערכים הממוינים לפי טווחי הערכים.

ניתוח זמן ריצה: האלגוריתם רץ ב- O(nk) זמן משום שלולאת ה- While נפטרת בכל איטרציה לפחות מאחת מהקבוצות Siולכן רצה k פעמים לכל היותר, וגוף לולאת ה- While מורכב ממספר סופי של פעולות שזמן הריצה שלהם חסום ע"י( O(n.

הוא 2 צביע אם ניתן לצבוע את קדקודיו בשני צבעים כך שלכל צלע גרף לא מכוון ) ) מתקיים ) ) דוגמא:.4 גרף זה לא 2 צביע כי לא ניתן לצבוע את הקודקוד הלבן בירוק או כחול כך שהצביעה תהיה חוקית גרף זה 2 צביע, כי מצאנו צביעה חוקית. א( ב( ג( הראו שאם גרף מכיל מעגל באורך אי זוגי אזי גרף זה לא 2 צביע. הראו שגרף לא מכוון וקשיר חסר מעגלים )עץ( הינו 2 צביע. תנו הסבר מפורט. הציעו אלגוריתם שצובע עץ בשני צבעים: לבן ושחור. מה זמן ריצתו הציעו אלגוריתם שמקבל גרף לא מכוון וקשיר וקובע האם הגרף הינו 2 צביע או לא. א( ב( נניח בשלילה כי ניתן לצבוע את הגרף ב- 2 צבעים, נביט על מעגל חייב להיות צבוע בצבע 2,, ) בצבע 1, מכיוון ש ) צבוע בצבע 1, אך המעגל הוא אי-זוגי נקבל כי סתירה(. נראה זאת באינדוקציה: אי זוגי בגרף. צבוע בצבע 1 וכך הלאה. מכיוון שאורך לכן הצביעה אינה חוקית )כלומר בסיס: לכל הטענה ברורה.,T = T/ הנחה: נניח כי ניתן לצבוע עץ בעל 1-n קודקודים צעד: נביט על T עץ בעל n קודקודים. מכיוון ש T הוא עץ קיים לו לפחות עלה אחד )בעל דרגה 1( נסמנו, נביט על T עדיין עץ והוא בעל 1-n קודקודים, לכן לפי ההנחה ניתן לצבוע אותו ב- 2 צבעים. כעט נביט על, מחובר אליו. הוא עלה ולכן מחובר רק לקודקוד אחד, נצבע את בצבע ההפוך לקודקוד שהוא האלגוריתם: נפעיל,BFS לכל קודקוד שמרחקו זוגי מהשורש ניתן את הצבע 1, ולכל קודקוד שמרחקו איזוגי ניתן את הצבע 2.

נכונות האלגוריתם : נניח בשלילה שחזרה צביעה לא חוקית נניח בה"כ כי קיימת קשת בין זוגית ל מרמה אי זוגית, לכן קיים מסלול באורך זוגי מהשורש ל וגם מסלול זוגי ל )עד ל ל ) לכן קיים מעגל בגרף סתירה. מרמה אי ואז זמן ריצה:,O(V+E) = BFS לעבור על קודקודים.O(V) סה"כ O(V+E) ג( האלגוריתם יהיה BFS עם שינוי קל: כאשר נקבע את המרחק, שנסמנו d, של קודקוד מהשורש, נבדוק את כל השכנים של הקודקוד, אם קיים שכן שגילינו כבר בסריקה שמרחקו )r<d( r כך ש d%2 = r%2 נחזיר שאי אפשר לצבוע עם 2 צבעים, אחרת נמשיך בסריקת ה,BFS אם הגענו לסוף הסריקה נחזיר שניתן לצבוע את הגרף עם 2 צבעים. נכונות האלגוריתם: קל לראות כי אם יש מסלול זוגי ואי זוגי מהשורש לקודקוד מסוים קיים מעגל אי זוגי בגרף, ולכן לא צביע. אם סיימנו את האלגוריתם אז ניתן לכל קודקוד את הצבע ) ( ומכיוון שאין שכנים שהמרחק שלהם מהשורש מודולו 2 שווה קיבלנו צביעה חוקית. קוטר של גרף הינו אורך המסלול הפשוט הארוך ביותר בגרף )מסלול פשוט מסלול ללא חזרות על קדקודים, להוציא אולי את הקדקודים בשתי קצוות המסלול(. תארו אלגוריתם שבהינתן עץ מחזיר את קוטר הגרף. זמן ריצה נדרש: ).5 ראשית נשים לב לעובדה כי אם המרחק בין ל הוא המרחק הגדול ביותר בגרף, כאשר נפעיל את האלגוריתם BFS על או בתור שורש נקבל כי המרחק המקסימאלי שהאלגוריתם יתן הוא הקוטר. האלגוריתם: a. בחר קדקוד.b.c.d.e הפעל BFS מ מצא את הקדקוד בגרף. הרחוק ביותר מ- הפעל BFS מ החזר את המרחק הגדול ביותר. נכונות האלגוריתם: נניח כי המרחק המקסימאלי הוא בין הרחוק ביותר מ נראה כי המרחק בין ל או בין ל ל ונניח כי האלגוריתם מצא כי הוא הגדול ביותר. הוא, נביט על המסלול מהשורש ל נסמנו, ועל המסלול בין נסמנו ל.) נשים לב כי, )מכיוון שאחרת נוכל לקבל מסלול ארוך יותר מהמסלול בין ל

, )כי אחרת ארוך לפחות כמו, נבחין כי במקרה זה המסלול יותר קרוב ל בה"כ הוא לפחות באורך נקבל מסלול ארוך יותר מהשורש בניגוד להנחה(, לכן המסלול הוא הגדול ביותר בעץ. ל ולכן נקבל שהמרחק בין ל המסלול בין זמן ריצה: הפעלה פעמיים של,O(E+V) : BFS חיפוש קדקוד עם מרחק מקסימאלי:.O(V) סה"כ: O(E+V) העשרה: עץ על הקשתות הוא גרף מיוחד אם יש ל- G עם פונקציית משקל נאמר שגרף ) על הקשתות ובודק אם עם פונקציית משקל פורש מינימלי (MST) יחיד. תארו אלגוריתם המקבל כקלט גרף ) G הוא גרף מיוחד. על האלגוריתם להחזיר את העץ הפורס המינימלי היחיד שלG, אם G הוא גרף מיוחד, או אחרת על האלגוריתם להודיע שהגרף אינו מיוחד.. זמן הריצה הנדרש: ((.6 גרף G הוא מיוחד אם לא קיים עץ פורש מינימאלי נוסף. האלגוריתם: 1 A = 2 curr = - 2 foreach (u,v) in G.E: 3 (u,v).color = white 4 foreach v G.V: 5 MAKE-SET(v) 6 foreach (u, v) ordered by weight(u, v), increasing: 7 if weight(u,v) > curr: 8 curr = weight(u,v) 9 foreach (u,v ) s.t. weight(u,v)=weight(u,v ): 10 if FIND-SET(u ) FIND-SET(v ): 11 (u,v ).color = grey 12 if FIND-SET(u) FIND-SET(v): 13 (u,v).color = white 14 A = A {(u, v)} 15 UNION(u, v)

16 foreach (u,v) in G.E: 17 if (u,v).color = grey: 18 return false 19 return A נכונות האלגוריתם: ניזכר כי האלגוריתם של קרוסקל כל פעם בוחר את הקשת הקלה ביותר שאפשר להוסיף. נשים לב כי אם קיימות 2 קשתות באותו משקל ששתיהן בטוחות בעת הוספת אחת מהקשתות, אך לאחר הוספת אחת מהקשתות, הקשת השניה אינה בטוחה, האלגוריתם של קרוסקל היה נותן פתרון אחר אם היינו בוחרים את הצלע השניה. ולכן קיים עוד עץ פורש כלומר G איננו מיוחד. כעט נותר להראות כי אם יש 2 עצי MST )שאחד מהם נוצר ע"י קרוסקל( אז קיימות 2 צלעות כנ"ל. יהי שני העצים, תהי הצלע הקלה ביותר ב שאינה ב ו הצלע הקלה ביותר ב שאינה ב. נראה כי משקל שווה למשקל. נניח בשלילה שהם לא שוות, בה"כ היא הקלה יותר. נוסיף את ל כעט יש מעגל ב נשים לב כי לא יכול להיות כי כל הצלעות במעגל קטנות ממש מ כי אז קייימת צלע במעגל שלא שייכת ל ואז נקבל סתירה להנחה ש היא הקלה יותר, בנוסף לא יכול להיות שיש צלע יותר כבדה מ כי אז נוציא אותה ונקבל עץ ששוקל פחות. לכן קיימת צלע במעגל ששוקלת כמו ואינה ב בסתירה לכך ש הצלע הקלה ביותר ב שאינה ב. ניתוח זמן ריצה: האלגוריתם מבוסס על קרוסקל לכן די שננתח רק את מה שהוספנו. הלולאה בשורה 2 עוברת על כל הקשתות O(E) הלולאה בשורה 9 עוברת על כל קשת לכל היותר פעם אחת וכל הפעלה לוקחת log(v) לכן סה"כ O(Elog(V)) הלולאה בשורה 16 עוברת על כל הקשתות O(E) O(Elog(V)) = O(Elog(V)) + O(E) + O(E) לכן סה"כ זמן ריצה : זמן של קרוסקל +

תארו אלגוריתם הממיין n נקודות שנדגמו בצורה אחידה )יוניפורמית( ממישור היחידה באורך n )המלבן שהנקודה השמאלית העליונה שלו היא (1,0) והנקודה הימנית התחתונה שלו היא (1-,n)(. על המיון למיין את הנקודות לפי מרחקן מראשית הצירים. על המיון לעבוד בזמן ממוצע )צפי( של.O(n).7 רמז: חישבו איך אפשר לחלק את מישור היחידה לקטעים רלוונטיים למיון, כך שהשטח של כל אחד מהם )להוציא אולי קטע אחד( הוא סדר גודל של n/1 מהשטח הכולל של מישור היחידה בגודל n )כפי שהוגדר למעלה( נשתמש במיון דליים כאשר החלוקה לדליים היא לפי המרחק מהראשית. נקודה שנמצאת בתוך מעגל היחידה שייכת לדלי מס' 1. נקודה שנמצאת בתוך מעגל בעל רדיוס i אבל מחוץ למעגל בעל רדיוס 1-i שייכת לדלי מס'. i סה"כ 1+n דליים. כל שצריך להראות הוא שהשטח שכל דלי מכסה )להוציא הדלי שמכסה את השטח הרחוק ביותר מהראשית(, הוא בסדר גודל של n/1 מהשטח שממנו נדגמו הנקודות. אבל. גודל השטח ממנו נדגמו הנקודות הוא בגודל של n*2, ושטח כל דלי אינו עולה על 4=2*2 ואינו נופל מ- pi/4 ולכן בסדר גודל של.1/n